home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-01-13 | 12.1 KB | 378 lines |
- 10 REM Documentation for the Genealogy ON DISPLAY Programs
- 20 REM All data is in the form of DATA statements.
- 30 REM By: Melvin O. Duke. Updated June 1983.
- 40 DATA Genealogy
- 50 DATA User's Manual
- 60 DATA -5
- 70 DATA 1
- 80 INDENT = 0
- 90 DASHES$ = "+"+STRING$(54,45)+"+"
- 100 TRIM.LINE$ = "(Trim-line)"
- 110 REM Program begins here
- 120 READ TITLE$, DOC.NAME$, PAGE.NO, LINE.NO
- 130 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 140 GOSUB 500 'For trim line and heading space
- 150 FOR I = 1 TO 6 : LPRINT : NEXT I
- 160 LPRINT CHR$(14); 'Set Expanded Print
- 170 LPRINT TAB(TAB.POS-2);TITLE$
- 180 LPRINT CHR$(18); 'Return to normal
- 190 FOR I = 1 TO 3 : LPRINT : NEXT I
- 200 LPRINT CHR$(27); "E"; 'Set Emphasized mode
- 210 LPRINT TAB(TAB.POS+12);"ON DISPLAY"
- 220 LPRINT CHR$(27); "F"; 'Return to normal
- 222 LPRINT : LPRINT : LPRINT
- 224 LPRINT TAB(TAB.POS+11);"Version 1.3"
- 230 FOR I = 1 TO 11 : LPRINT : NEXT I
- 240 LPRINT TAB(TAB.POS+10); DOC.NAME$
- 250 LINE.NO = LINE.NO + 27
- 260 '
- 270 READ REPLY$
- 280 IF LEFT$(REPLY$,1) = "." THEN GOSUB 850: GOTO 270
- 290 IF LINE.NO > 44 THEN GOSUB 610
- 300 REM Print the line if not a command
- 310 LPRINT TAB(TAB.POS);REPLY$
- 320 LINE.NO = LINE.NO + 1
- 330 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 340 GOTO 270
- 350 REM Data for the Copyright Page
- 354 DATA ".pa"
- 358 DATA "Anyone may request a copy of these"
- 362 DATA "programs by sending two blank diskettes"
- 366 DATA "to the author of the programs (one for"
- 370 DATA "the programs, and the second for the"
- 374 DATA "documentation)."
- 378 DATA ".sp"
- 382 DATA "An addressed, postage-paid return"
- 386 DATA "mailer must accompany the diskettes (no"
- 390 DATA "exceptions, please).
- 394 DATA ".sp"
- 398 DATA "A copy of the programs with documenta-"
- 402 DATA "tion will be sent by return mail."
- 406 DATA ".sp"
- 410 DATA "Regardless of whether a contribution"
- 414 DATA "is made, the user is encouraged to"
- 418 DATA "copy and share the program with others."
- 422 DATA "Payment for use is discretionary on"
- 426 DATA "the part of each subsequent user."
- 430 DATA ".vt 4"
- 434 DATA "If you are using these programs, and"
- 438 DATA "finding them of value, your contribution"
- 442 DATA "($35 suggested) will be appreciated."
- 446 DATA ".sp"
- 450 DATA "Melvin O. Duke"
- 454 DATA "P. O. Box 20836"
- 458 DATA "San Jose, CA 95160"
- 462 DATA ".vt 4"
- 466 DATA "Copyright (c) 1983, by:"
- 470 DATA "Melvin O. Duke."
- 474 DATA ".sp"
- 478 DATA "All rights reserved."
- 482 '
- 500 REM Top of each page routine
- 510 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 520 LPRINT
- 530 LPRINT TAB(30); TRIM.LINE$
- 540 LPRINT DASHES$ 'Dashes
- 550 FOR I = 1 TO 6
- 560 LPRINT
- 570 NEXT I
- 580 LINE.NO = LINE.NO + 6
- 590 RETURN
- 600 '
- 610 REM Bottom of each page Routine
- 620 IF PAGE.NO < 1 THEN LPRINT : LPRINT : LPRINT : GOTO 740
- 630 LPRINT TAB(TAB.POS); STRING$(40,45) 'on line 46
- 640 LPRINT TAB(TAB.POS+3); TITLE$+" ON DISPLAY. Version 1.3" 'on line 47
- 650 IF PAGE.NO MOD 2 = 1 THEN 690
- 660 LPRINT TAB(TAB.POS);"Page";PAGE.NO;
- 670 LPRINT TAB(TAB.POS+27);"User's Manual"
- 680 GOTO 740
- 690 LPRINT TAB(TAB.POS); "User's Manual";
- 700 IF PAGE.NO < 10 THEN DELTA = 34
- 710 IF PAGE.NO > 9 THEN DELTA = 33
- 720 IF PAGE.NO > 99 THEN DELTA = 32
- 730 LPRINT TAB(TAB.POS+DELTA); "Page"; PAGE.NO 'on line 48
- 740 LPRINT : LPRINT : LPRINT
- 750 LPRINT DASHES$ 'dashes after 51
- 760 LPRINT TAB(30); TRIM.LINE$
- 770 LPRINT CHR$(12);
- 780 PAGE.NO = PAGE.NO + 1
- 790 LINE.NO = 1
- 800 IF REPLY$ = ".eof" THEN 820 'Bypass after last page
- 810 GOSUB 500 'For top of next page
- 820 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 830 RETURN
- 840 '
- 850 REM Command Processor
- 860 IF LEFT$(REPLY$,3) = ".h1" THEN 960
- 870 IF LEFT$(REPLY$,3) = ".h2" THEN 1100
- 880 IF LEFT$(REPLY$,3) = ".h3" THEN 1210
- 890 IF LEFT$(REPLY$,3) = ".sp" THEN 1320
- 900 IF LEFT$(REPLY$,4) = ".eof" THEN 1370
- 910 IF LEFT$(REPLY$,3) = ".pa" THEN 1410
- 915 IF LEFT$(REPLY$,3) = ".pn" THEN PAGE.NO = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3)) : RETURN
- 920 IF LEFT$(REPLY$,3) = ".vt" THEN 1480
- 930 IF LEFT$(REPLY$,3) = ".pk" THEN 1590
- 940 IF LEFT$(REPLY$,3) = ".in" THEN 1720
- 950 STOP
- 960 REM Head 1 Processor
- 970 FOR I = LINE.NO TO 44
- 980 LPRINT
- 990 NEXT I
- 1000 GOSUB 610 'Bottom of page Routine
- 1010 IF PAGE.NO MOD 2 = 0 THEN GOSUB 1410 'For h1 on Odd pages
- 1020 LPRINT CHR$(14); 'Set expanded print
- 1030 IF PAGE.NO MOD 2 = 0 THEN ADJUST = -4 ELSE ADJUST = -7
- 1040 LPRINT TAB(TAB.POS+ADJUST); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1050 LPRINT CHR$(18); 'Return to normal
- 1060 LINE.NO = LINE.NO+1
- 1070 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1080 RETURN
- 1090 '
- 1100 REM Head 2 Processor
- 1110 IF LINE.NO = 7 THEN 1130 'skip spacing if at top of page
- 1120 IF LINE.NO > 43 THEN GOSUB 1410 ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
- 1130 LPRINT CHR$(27); "E"; 'Set emphasized print
- 1140 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1150 LPRINT CHR$(27); "F"; 'Return to normal
- 1160 LPRINT
- 1170 LINE.NO = LINE.NO + 2
- 1180 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1190 RETURN
- 1200 '
- 1210 REM Head 3 Processor
- 1220 IF LINE.NO = 7 THEN 1240 'skip spacing if at top of page
- 1230 IF LINE.NO > 43 THEN GOSUB 1410 ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
- 1240 LPRINT CHR$(27); "E"; 'Set emphasized print
- 1250 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1260 LPRINT CHR$(27); "F"; 'Return to normal
- 1270 LPRINT
- 1280 LINE.NO = LINE.NO + 2
- 1290 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1300 RETURN
- 1310 '
- 1320 REM Single Space Processor
- 1330 IF LINE.NO = 7 THEN 1350
- 1340 IF LINE.NO > 44 THEN GOSUB 1410 ELSE LPRINT : LINE.NO = LINE.NO + 1
- 1350 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1360 RETURN
- 1370 REM End of File Processor
- 1380 GOSUB 1410 'Bottom of Page
- 1390 LPRINT CHR$(12);
- 1400 GOTO 15470
- 1410 REM Page Eject Processor
- 1420 FOR I = LINE.NO TO 44
- 1430 LPRINT
- 1440 LINE.NO = LINE.NO + 1
- 1450 NEXT I
- 1460 GOSUB 610 'Bottom of Page Processing
- 1470 RETURN
- 1480 REM Vertical Tab Processor
- 1490 IF LINE.NO = 7 THEN 1580
- 1500 IF LINE.NO > 44 THEN GOSUB 610 'End of page
- 1510 QTY = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
- 1520 FOR I = 1 TO QTY
- 1530 LPRINT
- 1540 LINE.NO = LINE.NO + 1
- 1550 IF LINE.NO > 44 THEN I = QTY
- 1560 NEXT I
- 1570 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1580 RETURN
- 1590 REM Pack Processor
- 1600 IF LINE.NO > 44 THEN GOSUB 610
- 1610 IF TAB.POS = 8 THEN ADJUST = 4
- 1620 IF TAB.POS = 13 THEN ADJUST = 7
- 1630 TAB.POS = TAB.POS + ADJUST + INDENT
- 1640 LPRINT CHR$(15); 'Packed printing
- 1650 WIDTH "lpt1:", 132 'set condensed width
- 1660 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-3)
- 1670 LPRINT CHR$(18); 'Return to normal
- 1680 WIDTH "lpt1:", 80 'return to normal
- 1690 LINE.NO = LINE.NO + 1
- 1700 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
- 1710 RETURN
- 1720 REM Indent Processor
- 1730 INDENT = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
- 1740 RETURN
- 2610 DATA ".h1 INTRODUCTION"
- 2615 DATA ".pn 1"
- 2620 DATA ".h2 OVERVIEW"
- 2630 DATA "The Genealogy ON DISPLAY programs pro-"
- 2640 DATA "vide the user with the capability to"
- 2650 DATA "create and maintain data files which"
- 2660 DATA "contain information about his or her"
- 2670 DATA "ancestors and relatives, to interro-"
- 2680 DATA "gate the contents of the files, and to"
- 2690 DATA "obtain printouts of both pedigree charts"
- 2700 DATA "and family group sheets in standard"
- 2710 DATA "formats, using the information from"
- 2720 DATA "those files."
- 2730 DATA ".sp"
- 2740 DATA "Other than the total size of the files,"
- 2750 DATA "there is no practical limit to the"
- 2760 DATA "number of generations contained in the"
- 2770 DATA "files, or capable of being displayed or"
- 2780 DATA "printed."
- 2790 DATA ".h2 CAPABILITIES"
- 2800 DATA "Following are the capabilities of the"
- 2810 DATA "the group of programs known as the"
- 2820 DATA "Genealogy ON DISPLAY programs."
- 2825 DATA ".pa"
- 2830 DATA ".h3 Display the Genealogy."
- 2840 DATA "The program 'display' is one of the"
- 2850 DATA "three principal programs in the Genealogy"
- 2860 DATA "ON DISPLAY set of programs. All of the"
- 2870 DATA "other programs supplement these three"
- 2880 DATA "programs."
- 2890 DATA ".sp"
- 2900 DATA "By using the 'display' program, a user"
- 2910 DATA "may display personal information, pedi-"
- 2920 DATA "grees, and family group information for"
- 2930 DATA "any person whose records are in the data"
- 2940 DATA "files."
- 2950 DATA ".h2 Print Pedigree Charts"
- 2960 DATA "The program 'pedigree' is the second of"
- 2970 DATA "the three principal programs in the"
- 2980 DATA "Genealogy ON DISPLAY set of programs."
- 2990 DATA ".sp"
- 3000 DATA "By using this program, a user may obtain"
- 3010 DATA "a printout of a pedigree chart for any"
- 3020 DATA "person whose records are in the data"
- 3030 DATA "files."
- 3035 DATA ".pa"
- 3040 DATA ".h2 Print Family Group Sheets"
- 3050 DATA "The program 'family' is the third of the"
- 3060 DATA "three principal programs in the Genealogy"
- 3070 DATA "ON DISPLAY set of programs."
- 3080 DATA ".sp
- 3090 DATA "By using this program, a user may obtain"
- 3100 DATA "a printout of a family group sheet for"
- 3110 DATA "any person whose records are in the data"
- 3120 DATA "files."
- 3140 DATA ".h3 Create the Data Files."
- 3150 DATA "Three programs, the 'creatper', the"
- 3160 DATA "'creatmar', and the 'creatord' programs,"
- 3170 DATA "permit creation of the records in the"
- 3180 DATA "'persfile', the 'marrfile', and the"
- 3190 DATA "'ordfile' respectively."
- 3200 DATA ".h3 Update the Data Files."
- 3210 DATA "Three programs, the 'updatper', the"
- 3220 DATA "'updatmar', and the 'updatord' programs,"
- 3230 DATA "permit update of the records in the"
- 3240 DATA "'persfile', the 'marrfile', and the"
- 3250 DATA "'ordfile' respectively."
- 3255 DATA ".pa"
- 3260 DATA ".h3 Create the Indices."
- 3270 DATA "Two programs, the 'indexpc' and the"
- 3280 DATA "'indexmar' programs, permit creation of"
- 3290 DATA "the indices 'pcindex' and 'mindex'"
- 3300 DATA "respectively."
- 3310 DATA ".sp"
- 3320 DATA "Note: These two indices are essential"
- 3330 DATA "to the 'display', 'pedigree', and"
- 3340 DATA "'family' programs, as they provide"
- 3350 DATA "all of the linkages between persons,"
- 3360 DATA "ancestors, and families."
- 3370 DATA ".h3 List the Records in the Files."
- 3380 DATA "Two programs, the 'listper' and the"
- 3390 DATA "'listmar' programs, provide listings"
- 3400 DATA "of the records in the 'persfile' and"
- 3410 DATA "'marrfile', respectively. These are"
- 3420 DATA "one-line summary listings of the"
- 3430 DATA "records in the files."
- 3440 DATA ".h3 Printing the Contents of the Files."
- 3450 DATA "Two programs, the 'printper', and the"
- 3460 DATA "'printmar' programs, provide for print-"
- 3461 DATA "ing individual records or for complete"
- 3470 DATA "printouts of the files. The 'printper"
- 3480 DATA "program provides a combined printout"
- 3490 DATA "of the 'persfile' and the 'ordfile'."
- 3500 DATA "The 'printmar' program provides a"
- 3510 DATA "printout of the 'marrfile'."
- 3515 DATA ".pa"
- 3520 DATA ".h3 Alphabetical Lists."
- 3530 DATA "Two programs, the 'alphaper', and the"
- 3540 DATA "'alphamar' programs, provide alphabetical"
- 3550 DATA "listings of the persons in the Persons"
- 3560 DATA "File, and marriages in the Marriages"
- 3570 DATA "File, respectively. Note: These two"
- 3580 DATA "lists are very helpful in permitting the"
- 3590 DATA "user to locate records of persons and of"
- 3600 DATA "marriages."
- 3610 DATA ".h3 Parent/Child Index List"
- 3620 DATA "One program, the 'listpci' program,"
- 3630 DATA "provides a list of all persons who are"
- 3640 DATA "parents, together with the children of"
- 3650 DATA "those persons."
- 3660 DATA ".pa"
- 3670 DATA ".h2 BENEFITS/ADVANTAGES"
- 3680 DATA "The Genealogy ON DISPLAY programs pro-"
- 3690 DATA "vide an organized, cohesive set of"
- 3700 DATA "programs, to permit a user to create and"
- 3710 DATA "maintain that person's genealogical"
- 3720 DATA "information."
- 3730 DATA ".sp"
- 3740 DATA "One major advantage of this technique is"
- 3750 DATA "that the user only enters information a"
- 3760 DATA "single time, in a single place. Hence,"
- 3770 DATA "there is never any discrepancy between"
- 3780 DATA "separate reportings of the data."
- 3790 DATA ".sp"
- 3800 DATA "The programs use the relationships be-"
- 3810 DATA "tween persons for extracting and report-"
- 3820 DATA "ing the data in meaningful formats."
- 3830 DATA ".sp"
- 3840 DATA "Since most genealogical information is"
- 3850 DATA "not complete, whenever new information"
- 3860 DATA "is obtained, the user may readily add"
- 3870 DATA "that new information (or change any"
- 3880 DATA "erroneous old information) as the user"
- 3890 DATA "desires."
- 3900 DATA ".h2 RESULTS"
- 3910 DATA "The final results are a well-organized"
- 3920 DATA "set of data files and indices, which"
- 3930 DATA "permit a user to obtain related infor-"
- 3940 DATA "mation in formats which are meaningful"
- 3950 DATA "to that user."
- 3960 DATA ".pa"
- 3970 DATA "Pedigree Charts, Family Group Sheets, as"
- 3980 DATA "well as Personal information about each"
- 3990 DATA "individual are available upon demand,"
- 4000 DATA "either on the printer or on the display."
- 4020 DATA ".h2 REQUIREMENTS"
- 4030 DATA ".h3 Hardware Requirements."
- 4040 DATA ".sp"
- 4050 DATA "IBM Personal Computer, with:"
- 4060 DATA ".sp"
- 4070 DATA " Two diskette drives."
- 4080 DATA ".sp"
- 4090 DATA " IBM Matrix Printer."
- 4100 DATA ".sp"
- 4110 DATA " Note: The IBM Matrix Printer"
- 4120 DATA " provides for condensed printing"
- 4130 DATA " of Pedigree Charts and Family"
- 4140 DATA " Group Sheets."
- 4150 DATA ".sp"
- 4160 DATA " For full-sized printouts of the"
- 4170 DATA " Pedigree Charts and Family"
- 4180 DATA " Group Sheets, a 132 character"
- 4190 DATA " (10 char/in) printer is required."
- 4200 DATA ".sp"
- 4210 DATA " At least 96K of Storage."
- 4214 DATA ".sp"
- 4215 DATA " Note: Most of the programs will run"
- 4216 DATA " with 64K. The exception is the"
- 4217 DATA " 'pedigree' program."
- 4220 DATA ".pa"
- 4230 DATA " IBM Monochrome Display."
- 4240 DATA ".sp"
- 4250 DATA ".h3 Software Requirements."
- 4260 DATA ".sp"
- 4270 DATA "IBM PC-DOS."
- 4275 DATA " (1.0, 1.05, 1.1 or 2.0)"
- 4280 DATA ".sp"
- 4290 DATA "Disk BASIC (or Advanced BASIC).
- 4295 DATA " (1.0, 1.05, 1.1 or 2.0)"
- 15460 DATA ".eof"
- 15470 END
-